'''
  案例9.22：测试自建的easySqlite模块存储腾讯疫情全球数据
'''
#导入自建爬虫easySpider模块和数据库存储easySqlite模块、json模块
import easySqlite
import easySpider
import json

#1.实例化easySqlite，返回腾讯疫情数据库对象
txYQ_db = easySqlite.SqliteBase(dbName='txYQBase.db')

#2.实例化easySpider，根据url爬取腾讯疫情JSON数据,经过json方法处理获得疫情数据字典
url = 'https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoGlobalStatis,FAutoContinentStatis,FAutoGlobalDailyList,FAutoCountryConfirmAdd'
txData = easySpider.Spider(url=url)
resultStr = txData.requests_getHtmlSource()
resutDict=json.loads(resultStr)

# 3.构造sql语句，连接所有行记录,准备实现数据存储。
sql_dailyData="insert into dailyGlobalStat values"
for item in resutDict['data']['FAutoGlobalDailyList']:
    sql_dailyData += "('{}','{}','{}','{}','{}','{}','{}'),".format(item['date'],\
                    item['all']['confirm'],item['all']['dead'],item['all']['heal'],
                    item['all']['newAddConfirm'],item['all']['deadRate'],item['all']['healRate'])
sql_dailyData = sql_dailyData[:-1]
# 4. 将数据存入sqlite数据库中
if txYQ_db.dmlTool(sql=sql_dailyData):
    print("疫情数据存储成功！")

# 5.查询数据库中共有多少条记录
sql_count = "select count(dates) from dailyGlobalStat"
print(txYQ_db.queryTool(sql=sql_count))